// Code scaffolded by goctl. Safe to edit.
// goctl 1.9.2

package config

import "github.com/zeromicro/go-zero/rest"

type Config struct {
	rest.RestConf
	NexusDB NexusDB `json:"nexusDB"`
	Logger  Logger  `json:"logger"`
	JWT     JWT     `json:"jwt"`
	Redis   Redis   `json:"redis"`
	Static  Static  `json:"static"`
}

// 数据库配置
type NexusDB struct {
	Host            string `json:"host"`
	Port            string `json:"port"`
	User            string `json:"user"`
	Password        string `json:"password"`
	Schema          string `json:"schema"`
	MaxIdleConns    int    `json:"maxIdleConns"`
	ConnMaxLifetime int    `json:"connMaxLifetime"`
	MaxOpenConns    int    `json:"maxOpenConns"`
}

// Gorm日志配置
type Logger struct {
	Level         string `json:"level"`
	SlowThreshold int    `json:"slowThreshold"` // 毫秒
}

// JWT配置
type JWT struct {
	Issuer string `json:"issuer"`
	Secret string `json:"secret"`
	Expire int    `json:"expire"`
}

// Redis配置
type Redis struct {
	Host string `json:"host"`
	Pass string `json:"pass"`
	Type string `json:"type"` // Type 运行方式，node：节点，cluster：集群
}

// 静态资源目录配置
type Static struct {
	UploadDir string `json:"uploadDir"`
}
